#ifndef _TOKEN_H_
#define _TOKEN_H_

#include <iostream>
#include <string>

enum Type {Alpha, Number, Symbol, Space, Unknown};

enum Token {Identificador, PalavraReservada, Inteiro, Booleano, SimboloSimples, SimboloComposto, Erro};
/*
typedef struct
{
    char  *token;
    int   line;
    Token type;
    
} TToken;
*/
class TToken
{
    public:

	    TToken();
    	TToken(int a);
    	TToken(char *a, Token b);
    	virtual ~TToken();
    	
    	// comparacao da string token
    	bool operator == (char* simb);
    	
    	//verifica se o token eh numero
    	bool isNumero ();
    	
    	//verifica se o token eh identificador
    	bool isIdentificador();

    	bool isTipo();

        bool isTipoVariavel();
    	
    	char  *token;
    	int   line;
    	Token type;
};

#endif //_TOKEN_H_
